/**********************************************
	* @author: Jun
	* @time  : 2018/8/1
	* @brief ：字体管理接口
	* @note  ：none
**********************************************/
#ifndef _OC_FONT_H_
#define _OC_FONT_H_

#include "../oc_user/oc_config.h"
#include "../oc_user/oc_user.h"
#include "../oc_user/oc_base.h"

#define ACS12_6  12
#define ACS16_8  16
#define ACS24_12 24

#define OC_FONT_CACHE 512//屏幕重定向输出缓存
typedef struct
{
	uint8_t type;//字符类型
	char str[OC_FONT_CACHE];
}oc_font_t;

/**********************************************
 * @brief ：字符初始化
 * @note  ：none
**********************************************/
void oc_font_init(void);

/**********************************************
 * @brief ：设置字符类型
 * @param : type: 类型
 * @note  ：none
**********************************************/
void oc_font_type(uint16_t type);

/**********************************************
 * @brief ：在指定位置显示一个字符
 * @param : xpos: x起始坐标
 * @param : ypos: y起始坐标
 * @param : acsii: 字符
 * @note  ：none
 * @retval: 绘制成功返回oc_OK，失败返回oc_ON
**********************************************/
void oc_font_char(uint16_t xpos, uint16_t ypos,uint8_t acsii);

/**********************************************
 * @brief ：显示字符串
 * @param : xpos: x起始坐标
 * @param : ypos: y起始坐标
 * @param : *p:字符串起始地址	
 * @note  ：none
 * @retval: 绘制成功返回oc_OK，失败返回oc_ON
**********************************************/
void oc_font_string(uint16_t xpos,uint16_t ypos,uint8_t *str);

/**********************************************
 * @brief ：屏幕的重定向输出，类似printf
 * @param : xpos: x起始坐标
 * @param : ypos: y起始坐标
 * @param : fmt
 * @note  ：none
**********************************************/
void oc_font_printf(uint16_t xpos,uint16_t ypos,char* fmt,...);
	
#endif
